#============================================================
#    Input Vector
#============================================================
# - datetime: 2022-08-27 16:51:28
#============================================================

##  输入向量
class_name InputVector
extends Node


##  输入值
signal inputted(direction: Vector2)


## 在 enable_physics_process 中执行
@export
var enable_physics_process : bool = true
@export
var negative_x: StringName = "ui_left"
@export
var positive_x: StringName = "ui_right"
@export
var negative_y: StringName = "ui_up"
@export
var positive_y: StringName = "ui_down"


var _last_vector : Vector2 = Vector2.ZERO


#============================================================
#  SetGet
#============================================================
func get_last_vector() -> Vector2:
	return _last_vector


#============================================================
#  内置
#============================================================
func _ready() -> void:
	set_physics_process(enable_physics_process)


func _physics_process(delta: float) -> void:
	if enable_physics_process:
		execute()
	else:
		_last_vector = Vector2.ZERO
		enable_physics_process = false
		set_physics_process(false)


#============================================================
#  自定义
#============================================================
func execute():
	_last_vector = Input.get_vector(negative_x, positive_x, negative_y,positive_y)
	inputted.emit(_last_vector)
